package jeudevie.models;

/**
 * Contient les informations relatives a une cellule.
 *
 * La naissance d'une cellule correspond a la creation d'un objet cellule; la
 * mort a la destruction de cet objet
 */
public class Cell {

    /**
     * Malgre l'existence de l'etat "DEAD", seulement les cellules vivantes
     * existent reelement sur la grille.
     */
    public static enum State {
        ALIVE, DEAD
    }
  
    private State state;
    
    /*
     * la grille sur laquelle se trouve la cellule
     */
    @SuppressWarnings("unused")
    private Grid2d<Cell> grille;

    
    public Cell(Grid2d<Cell> _grille) {
        state = Cell.State.ALIVE;
        grille = _grille;
    }

    public State getState() {
        return state;
    }

    public void setState(State state) {
        this.state = state;
    }

    public boolean isLiving() {
        return state.equals(Cell.State.ALIVE);
    }
}
